Markup languages are generally easy to create and understand. The Extensible Markup Language, commonly known as XML, is one of the most prevalent markup languages in use today. XML is a format designed to bring structured information to the Web. It is a Web-based language for electronic data interchange. XML is an open technology standard of the World Wide Web Consortium (W3C), which is the standards group responsible for maintaining and advancing the hypertext markup language (HTML) and other Web-related standards.
XML is a sub-set of the Standard Generalized Markup Language (SGML) that maintains the important architectural aspects of contextual separation while removing nonessential features. The XML document format embeds the content within tags that express its structure. XML also provides the ability to express rules for the grammar of a document. These two features allow automatic separation of data and metadata, and allow generic tools to validate an XML document against its grammar.
XML has been designed for system integration. XML provides a structural representation of data that has proved broadly implementable and easy to deploy. A piece of information marked by the presence of tags is called an element. Matching start and end tags are used to mark up information. Elements can be further described by attaching name value pairs called attributes. An XML element can declare its associated data to be any desired data element. For example, the element can be a retail price, a book title, etc. Presently, XML has been applied to grammar-based representations of applications data (e.g., business documents, EDI messages, etc.), user-interfaces of applications, XHTML, and other grammars having a fixed set of tags.
These grammar-based representations are limited in that they do not have the ability to easily extend the fixed set of tags to create new types of XML elements. Additionally, as the computer industry steadily moves towards object-oriented programming, XML does not adequately represent objects of executable components. These objects are re-usable by other software programs and new objects can be easily extended from existing objects. As a result, programmers often create hierarchies of objects programmatically in a programming language instead of declaratively. The hierarchy of objects has to be created in the programming language every time it is used.
A system to provide programmers with the ability to create hierarchies of objects and types declaratively in conjunction with programmatic logic has eluded those skilled in the art.